package Demo;

import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;

public class Test {
//    public static void main(String[] args) {
    //方法中的实参与形参
//        int num1 = 100;
//        int num2 = 200;
//        //传值调用
//        swap(num1, num2);
//        System.out.println("num1 = " + num1 + " num2 = " + num2);

//        int num1 = 100;
//        int num2 = 200;
//        int[] array = {num1, num2};
//        //只是数组中的内容发生改变了
//        System.out.println(Arrays.toString(array));
//        swap(array);
//        System.out.println(Arrays.toString(array));

    //引用类型
//        Temp temp1 = new Temp(100);
//        Temp temp2 = new Temp(200);
//        swap(temp1, temp2);
//        System.out.println(temp1.val + " " + temp2.val);


    //    }
    //方法重载
    //其方法名称是不同的 - 方法全路径 + 方法名称 + 方法形参 + 方法返回值
//    public static void swap(Temp t1, Temp t2) {
//        int temp = t2.val;
//        t2.val = t1.val;
//        t1.val = temp;
//    }
//
//    public static void swap(int[] array){
//        //....
//    }
//    public static void swap(int num1,int num2){
//        //...
//    }
//    public static void main(String[] args) {
//        //使用switch返回对应的值
//        Scanner scanner = new Scanner(System.in);
//        System.out.print("请输入一个整数：");
//        int number = scanner.nextInt();
//        //可以使用yield也可以使用->
//        String ret = switch (number){
////            case 1 -> "one";
////            case 2 -> "two";
////            case 3 -> "three";
////            case 4 -> "four";
////            case 5 -> "five";
////            default -> "zero";
////            case 1:yield "one";
////            default:yield "zero";
//        };
//        System.out.println(ret);
//    }
    public static void main(String[] args) {
        //数组常用API
        //二分查找
//        Integer[] array = {1, 3, 2, 6, 4, 8, 7, 9, 0, 10, 5};
//        Arrays.sort(array, new Comparator<Integer>() {
//            @Override
//            public int compare(Integer o1, Integer o2) {
//                return o2 - o1;
//            }
//        });
//        System.out.println(Arrays.toString(array));
//        //二分查找只有在数组有序的时候才可以使用
//        int ret = Arrays.binarySearch(array, 5);
//        System.out.println(ret);

//        int[] array = {1, 3, 2, 6, 4, 8, 7, 9, 0, 10, 5};
//        Arrays.sort(array);
//        System.out.println(Arrays.toString(array));
//        //copy可以用于伸缩数组 - 返回新数组
//        int[] ret = Arrays.copyOf(array, 20);
//        System.out.println(Arrays.toString(ret));
        //将前边的放到后边
//        System.arraycopy(array, 0, array, 5, 5);
//        System.out.println(Arrays.toString(array));

//        int len = array.length;
//        //也可以实现数组的伸缩 - 但是也不可以实现数组的自行拷贝
//        int[] ret = Arrays.copyOfRange(array, 0, len + 5);
//        System.out.println(Arrays.toString(ret));

//        int[] array1 = {1,2,3,4,5};
//        int[] array2={5,4,3,2,1};
//        Arrays.sort(array2);
//        System.out.println(array1 == array2);
//        //比较的是数组内部的内容
//        System.out.println(Arrays.equals(array1,array2));

//        int[] array = {1,2,3,4,5};
//        String str = "hello world";
//        System.out.println(str.startsWith("hel"));

        //二维数组使用比较器来进行排序
//        int[][] array = {{1, 2}, {1, 3}, {3, 4}, {4, 5}, {5, 6}};
////        System.out.println(Arrays.deepToString(array));
//        Arrays.sort(array, new Comparator<int[]>() {
//            @Override
//            public int compare(int[] o1, int[] o2) {
//                return o2[0] - o1[0];
//            }
//        });
//        System.out.println(Arrays.deepToString(array));

        //String 类型可以直接加字符串
//        char ch = '我';
//        String str = "hello ";
//        System.out.println(str+ch);

    }
}
